package com.weiquan.vo;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * AI诊断结果VO
 */
@Data
public class AiDiagnosisVO {

    /**
     * 诊断ID
     */
    private Long id;

    /**
     * 诊断场景
     */
    private Integer scenario;

    /**
     * 场景名称
     */
    private String scenarioName;

    /**
     * 问题描述
     */
    private String problemDescription;

    /**
     * 维权成功率（百分比）
     */
    private Integer successRate;

    /**
     * 成功率等级：high-高，medium-中，low-低
     */
    private String successLevel;

    /**
     * 关键影响因素列表
     */
    private List<KeyFactor> keyFactors;

    /**
     * 维权步骤建议
     */
    private List<SuggestedStep> suggestedSteps;

    /**
     * 相关法条解读
     */
    private List<LegalAnalysis> legalAnalysis;

    /**
     * 推荐模板列表
     */
    private List<RecommendedTemplate> recommendedTemplates;

    /**
     * 推荐案例列表
     */
    private List<RecommendedCase> recommendedCases;

    /**
     * 风险提示
     */
    private List<String> riskWarnings;

    /**
     * 预估时间成本
     */
    private String estimatedTime;

    /**
     * 预估经济成本
     */
    private String estimatedCost;

    /**
     * 诊断状态
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 关键影响因素
     */
    @Data
    public static class KeyFactor {
        /**
         * 因素名称
         */
        private String name;

        /**
         * 因素描述
         */
        private String description;

        /**
         * 重要程度：1-5
         */
        private Integer importance;

        /**
         * 是否具备：true-具备，false-不具备
         */
        private Boolean hasIt;

        /**
         * 建议
         */
        private String suggestion;
    }

    /**
     * 建议步骤
     */
    @Data
    public static class SuggestedStep {
        /**
         * 步骤序号
         */
        private Integer stepNumber;

        /**
         * 步骤名称
         */
        private String stepName;

        /**
         * 步骤描述
         */
        private String description;

        /**
         * 预估时间
         */
        private String estimatedTime;

        /**
         * 成功率影响
         */
        private String successImpact;

        /**
         * 操作入口（如电话号码、网址等）
         */
        private String actionEntry;

        /**
         * 是否必须
         */
        private Boolean required;
    }

    /**
     * 法条解读
     */
    @Data
    public static class LegalAnalysis {
        /**
         * 法条名称
         */
        private String lawName;

        /**
         * 条文内容
         */
        private String content;

        /**
         * 通俗解读
         */
        private String explanation;

        /**
         * 适用场景
         */
        private String applicableScenario;
    }

    /**
     * 推荐模板
     */
    @Data
    public static class RecommendedTemplate {
        /**
         * 模板ID
         */
        private Long templateId;

        /**
         * 模板名称
         */
        private String templateName;

        /**
         * 模板描述
         */
        private String description;

        /**
         * 推荐理由
         */
        private String reason;

        /**
         * 使用频率
         */
        private Integer usageCount;
    }

    /**
     * 推荐案例
     */
    @Data
    public static class RecommendedCase {
        /**
         * 案例ID
         */
        private Long caseId;

        /**
         * 案例标题
         */
        private String title;

        /**
         * 案例摘要
         */
        private String summary;

        /**
         * 相似度
         */
        private Integer similarity;

        /**
         * 结果
         */
        private String result;
    }
}